#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

typedef int DataType;

typedef struct Node {
    DataType data;
    struct Node *next;
}LNode;

int ListInitiate(LNode **head);//单链表初始化，成功返回0，否则返回1

int ListLength(LNode *head);//函数返回由head所表示的单链表长度

int ListInsert(LNode **head, DataType x);
//在由head所表示的单链表里插入一个元素x到位置i
//成功返回0，否则返回1

int ListDelete(LNode **head, int i, DataType *x);
//在head所示的单链表里删除位置i上的元素并将其值存入x变量量里，调用成功后列表长度减1

int ListGet(LNode *head, int i, DataType *x);
//在head所示的单链表里删除位置i上的元素并将其值存入x变量量里，调用成功后列表长度不变

int Destroy(LNode **head);